export let vertexShaderSource = `
      attribute vec3 a_position;
      // 世界矩阵
      uniform mat4 u_world;
      // 自己的矩阵
      uniform mat4 u_unit;
      // 眼镜 和 透视矩阵 他不需要递归所以单独做一个，它不影响光照法向量 所以拆分出来
      uniform mat4 u_worldview;
      attribute vec3 a_norm;
      uniform vec3 u_light;
      uniform vec3 u_camera;

      varying vec3 v_norm;
      varying vec3 v_surfaceToCamera;
      varying vec3 v_surfaceToLight;
      
      void main (){
        // 照射位置 光照到模型上的点
        vec3 surface = (u_world * u_unit * vec4(a_position, 1)).xyz;
        gl_Position = u_worldview * u_world * u_unit * vec4(a_position, 1);
        // 法向量 只会跟着旋转变化，平移不会变化 所以只需要mat3
        v_norm = mat3(u_world * u_unit) * a_norm;
        // 光照的反方向 
        v_surfaceToLight = u_light - surface;
        // 照射点到眼镜
        v_surfaceToCamera = u_camera - surface;
      }
`
